package com.iris.live.services.data.repositories;

import com.iris.live.services.data.models.报价单表Model;
import com.iris.live.services.models.PageData;
import com.iris.live.services.models.RequestBase;
import com.iris.live.services.services.SalesService;
import org.springframework.data.repository.NoRepositoryBean;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * Created by sxy on 2016/8/8.
 */
@NoRepositoryBean
public interface SalesRepository {
    PageData getSaleList(String permit,SalesService.GetSaleListRequest request);

    PageData getCarItemList(String permit, RequestBase request);

    PageData getAttachmentPolicyList(String permit,SalesService.GetAttachmentPolicyListRequest request);

    //add attachmentPolicyList search
    PageData getAttachmentPolicyListByCondition(String permit,SalesService.GetAttachmentPolicyListReq request);

    PageData getActiveCarItemSettingList(String permit,SalesService.GetCarItemSettingRequest request);

    PageData getStoreInfoes(String dealer, Map map, RequestBase request);

    @Deprecated
    PageData getDealerInfo(String dealer, Map map, RequestBase request);

    PageData getOtherDealerInfo(String dealer, Map map, RequestBase request);

    PageData getOtherStoreCar(SalesService.GetOtherStoreCarReq request); 
    
    List SelectCarTransferLog(String VIN, String type);
    
    List getNoReceiptProNo(String permit);
    
    List getCompareModelsList();
    
    //查询销售项目设置.值(1/空=true 可见)
    boolean getIsShow(String permit);

    List getExistProductNo(List<SalesService.SaveLshStockReq> reqList);

    List getExistProductNoNew(List<String>   reqList);

      List getHaveProductNoStock(List<String> reqList);

    List getExistVin(List<SalesService.SaveLshStockReq> reqList);

    List getExistVinNew(List<String> reqList);

    PageData findAllStock(RequestBase request,String permit);

    List findAllStock(String permit);


    List findAllCarType();
    //根据生产号查询开票情况(true 已开票,false 未开票)
    public boolean getIsBilling (String productNo);

    //查询库存表信息
    Map getLshStockInfo(String productNo);
    
    Map getTransferCustInfo(Integer stock_code);

//    boolean checkExistByStockCode(Integer stock_code);
    
    boolean selectExistNum(String productNo);

    List getCarTransferCustInfo(String dlr, String productNo);
    
    List getInnerDetails(String productNo);
    
    List selectExpectGiveCarDateAndReason(String vin);
    
    List getInnerData(String param,String type);

	List getOuterVisableLevel(String productNo);

	List getInnerVisableRole(String productNo);

	List getKCNumByProductNum(String productNo);

    List getSelfCarStatusList(String permit);

    List findPermitAndAh();

    boolean getstatus(String productNo);

    List getAllCTAlists();

    List getAllBigArealists();

    List getAllSmallArealists(String da);


    List followCluesList(String permit, String date);

    List getRoleAndpermitAndname(String sheng);

    List findDealerInfoById(String quoteId);

    PageData getDealerBatchInfo(SalesService.GetSaleListRequests re, String p, String s);

    PageData getExchangeList(SalesService.ExchangeInfo requestBase, String permit);

    PageData getChangeCarList(SalesService.ChangeCarInfo info, String permit);

    报价单表Model getModelByRestore(String initQuoteNumber);

    List getContractData(String prodNum);

    List getContractDataFreebies(String prodNum);

    PageData getSaleTailAfter(String permit, SalesService.SaleTailAfter request,RequestBase RBase);

    PageData getInventoryInfo(String dealer, Map map, RequestBase request);

    PageData getInfoByProudctionId(String pid, HttpServletRequest request);

    PageData getOrders(String dlr, SalesService.GetOrdersRequest req);

    List getOrdersHistory(String originId);

    List getOrdersReview(Integer qNum);

    List getOrdersByAllOriginId(String dealer, Map inputParam, RequestBase request);
}
